package com.ssm.sport.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ssm.sport.entity.Banner;

import java.util.List;

/**
 * 轮播图服务接口
 */
public interface BannerService extends IService<Banner> {
    
    /**
     * 获取所有启用的轮播图列表，按排序号升序排列
     * @return 轮播图列表
     */
    List<Banner> listEnabledBanners();
    
    /**
     * 根据ID获取轮播图
     * @param id 轮播图ID
     * @return 轮播图对象
     */
    Banner getById(Integer id);
    
    /**
     * 添加轮播图
     * @param banner 轮播图对象
     * @return 是否成功
     */
    boolean add(Banner banner);
    
    /**
     * 更新轮播图
     * @param banner 轮播图对象
     * @return 是否成功
     */
    boolean update(Banner banner);
    
    /**
     * 删除轮播图
     * @param id 轮播图ID
     * @return 是否成功
     */
    boolean delete(Integer id);
    
    /**
     * 分页获取所有轮播图
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页对象
     */
    Page<Banner> list(int pageNum, int pageSize);
    
    /**
     * 分页获取所有轮播图（与list方法相同，为了方法名称统一）
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页对象
     */
    Page<Banner> getBannerPage(int pageNum, int pageSize);
    
    /**
     * 根据ID获取轮播图（与getById方法相同，为了方法名称统一）
     * @param id 轮播图ID
     * @return 轮播图对象
     */
    Banner getBannerById(Integer id);
    
    /**
     * 保存轮播图（与add方法相同，为了方法名称统一）
     * @param banner 轮播图对象
     * @return 是否成功
     */
    boolean saveBanner(Banner banner);
    
    /**
     * 更新轮播图（与update方法相同，为了方法名称统一）
     * @param banner 轮播图对象
     * @return 是否成功
     */
    boolean updateBanner(Banner banner);
    
    /**
     * 删除轮播图（与delete方法相同，为了方法名称统一）
     * @param id 轮播图ID
     * @return 是否成功
     */
    boolean deleteBanner(Integer id);
    
    /**
     * 更新轮播图状态
     * @param id 轮播图ID
     * @param status 状态值
     * @return 是否成功
     */
    boolean updateBannerStatus(Integer id, Integer status);
} 